//相关业务逻辑
$(function(){
	page.bind();
	page.hiddenDiv();
	page.queryRole();
	$(".querryRoleDiv").show("slow");
	$(".addRoleDiv").hide("slow");
});

var pageroleId="";
//页面变量
var page={
	bind:function(){
		$("#addRole").bind("click",function(){
			$(".addRoleDiv").show("slow");
			$(".querryRoleDiv").hide("slow");
//			$(".haveAndNoHanv").hide("slow");
//			$(".setBtn").hide("slow");
		});
		
		$("#querryRole").bind("click",function(){
			page.queryRole();
			$(".querryRoleDiv").show("slow");
			$(".addRoleDiv").hide("slow");
		});
		
//		$("#hiden").bind("click",function(){
//			$(".addRoleDiv").hide("slow");
//		});
		
		$("#addRoleBtn").bind("click",function(){
			page.addRole();
		});
		
		$("#setCheck").bind("click",function(){
			$("input[type='checkbox']").show("slow");
//			$(".setBtn").show("slow");
		});
		
		$("#addPermissionBtn").bind("click",function(){
			page.addPermission();
		});
		
		$("#removePermissionBtn").bind("click",function(){
			page.removePermission();
		});
		
		$("#updateRoleBtn").bind("click",function(){
			page.updateRole();
		});
	},
	roleBind:function(){
		$(".roleNameA").unbind("click");
		$(".setRole").unbind("click");
		$(".updateRole").unbind("click");
		$(".deleteRole").unbind("click");
		
		$(".roleNameA").bind("click",function(){
			var id=$(this).attr("id");
			pageroleId=id;
			page.getRolePermission(id,2);
		});
		
		$(".setRole").bind("click",function(){
			var id=$(this).attr("id");
			pageroleId=id;
			page.getRolePermission(id ,1);
//			$(".setBtn").show("slow");
		});
		
		$(".updateRole").bind("click",function(){
			pageroleId=$(this).attr("id");
			var name=$(this).parent().prev().prev().text();
			var desc=$(this).parent().prev().text();
			$("#modalName").val(name);
			$("#modalDesc").val(desc);
			$("#updateRoleModal").modal("show");
		});
		
		$(".deleteRole").bind("click",function(){
			var roleId=$(this).attr("id");
			page.deleteRole(roleId);
		});
		
		$(".seePeopleBtn").bind("click",function(){
			var roleId=$(this).attr("id");
			page.getRolePeople(roleId);
		});
	},
	hiddenDiv:function(){
		$(".addRoleDiv").hide();
		$(".querryRoleDiv").hide();
//		$(".haveAndNoHanv").hide();
//		$(".setBtn").hide();
	},
	queryRole:function(){
		ajaxUtil.ajaxRuquest('permission/querryAllrole',null,function(data){
			var html="";
			for(var i=0;i<data.length;i++){
				html+="<tr><td><a class='roleNameA'id='"+data[i].id+"'>"+data[i].name+
				"</a></td><td>"+data[i].description+
				"</td><td><a class='setRole' id='"+data[i].id+"'>设置权限</a>&nbsp;&nbsp;<a class='updateRole' id='"+data[i].id+"'>修改</a>&nbsp;&nbsp;<a class='deleteRole' id='"+data[i].id+"'>删除</a>&nbsp;&nbsp;<a class='seePeopleBtn' id='"+data[i].id+"'>查看人员</a></td></tr>";
			}
			$("#allRoleTbody").html(html);
			page.roleBind();
		});
	},
	addRole:function(){
		var sendData=new Object();
		sendData.name=$("#roleName").val();
		sendData.description=$("#roleDescription").val();
		if(sendData.name==""){
			layAlert("请输入权限组名称");
			return false;
		}
		if(sendData.description==""){
			layAlert("请输入权限组描述");
			return false;
		}
		ajaxUtil.ajaxRuquest('permission/addrole',sendData,function(data){
			layer.msg(data,{icon:1});
			$("#roleName").val("");
			$("#roleDescription").val("");
		});
	},
	getZTreeData:function(data){
		if(data==null || data.length==0){
			return  new Array();
		}
		var array=new Array();
		var titleArray=new Array();
		for(var i=0;i<data.length;i++){
			var id=data[i].id;
			var name=data[i].name;
			var arr=name.split('-');
//			var object = new Object();
//			object.name=arr[0];
//			object.open=true;
//			object.children=[{"name":arr[1]}];
//			object.children.children=[{"name":arr[2],"id":id}];
//			array.push(object);
			var object1=new Object();
			object1.id=arr[0];
			object1.pId=null;
			object1.name=arr[0];
			array.push(object1);
			
			var object2=new Object();
			object2.id=arr[0]+"-"+arr[1];
			object2.pId=arr[0];
			object2.name=arr[1];
			array.push(object2);
			
			var object3=new Object();
			object3.id=arr[0]+"-"+arr[1]+"-"+arr[2];
			object3.pId=arr[0]+"-"+arr[1];
			object3.name=arr[2];
			object3.permissionId=id;
			array.push(object3);
		}
		array=_.uniqBy(array,"id");
		return array;
	},
	getRolePeople:function(roleId){
		ajaxUtil.ajaxRuquest('permission/getRoleUser',{'roleId':roleId},function(data){
			var html="";
			for(var i=0;i<data.length;i++){
				html+="<tr>" +
						"<td>"+data[i].userName+"</td>" +
						"<td>"+data[i].phone+"</td>" +
						"<td>"+data[i].deptName+"</td>" +
						"<td>"+data[i].workShopName+"</td>" +
						"</tr>";
			}
			$("#seePeopleTable").html("");
			$("#seePeopleTable").append(html);
			$("#seePeople").modal("show");
		});
	},
	getRolePermission:function(id,showOrHide){
//		$("#haveTable").html("");
//		$("#noHaveTable").html("");
		var setting = {
				view: {
					showIcon: false
				},
				check: {
					enable: true
				},
				data : {
					simpleData : {
						enable : true
					}
				}
		};
		ajaxUtil.ajaxRuquest('permission/getRolePermission',{'roleId':id},function(data){
			$.fn.zTree.init($("#tree"), setting, page.getZTreeData(data));
			
//			var html="";
//			if(data==null){
//				$("#haveTable").html("<tr><td>还未设置权限</td></tr>")
//			}else{
//				page.viewPermission(data,'haveTable','haveCheck',showOrHide);
//			}
		});
		
		ajaxUtil.ajaxRuquest('permission/getRoleNoPermission',{'roleId':id},function(data){
			$.fn.zTree.init($("#treeNo"), setting, page.getZTreeData(data));
//			console.log(data);
//			if(data==null){
//				$("#noHaveTable").html("<tr><td>没有未设置权限</td></tr>")
//			}else{
//				page.viewPermission(data,'noHaveTable','noHaveCheck',showOrHide);
//			}
		});
//		$(".haveAndNoHanv").show("slow");
//		$(".setBtn").hide("slow");
		$("#setRoleModal").modal("show");
	},
	viewPermission:function(data,id,name,showOrHide){
		var html="";
		for(var i=0;i<data.length;i++){
			html+="<tr><td><input  type='checkbox' name='"+name+"' value='"+data[i].id+"' />"+data[i].name+"</td></tr>";
		}
		$("#"+id).html(html);
		if(showOrHide==2){
			$("input[type='checkbox']").hide();
		}
	},
	addPermission:function(){
//		var permissionIdArray=new Array();
//		$('input[name="noHaveCheck"]:checked').each(function(){  
//			permissionIdArray.push($(this).val());//向数组中添加元素  
//		}); 
		var treeObj = $.fn.zTree.getZTreeObj("treeNo");
		var nodes = treeObj.getCheckedNodes(true);
		nodes=_.filter(nodes,{"isParent":false});
		var permissionIdArray=_.map(nodes,"permissionId");
		if(permissionIdArray.length<=0){
			layAlert("请选择要添加的权限");
			return false;
		}
		ajaxUtil.ajaxRuquest('permission/addRolePermission',{'roleId':pageroleId,'permissionIdArray':JSON.stringify(permissionIdArray)},function(data){
			layer.msg(data,{icon:1});
			page.getRolePermission(pageroleId,2);
		});
	},
	removePermission:function(){
//		var permissionIdArray=new Array();
//		$('input[name="haveCheck"]:checked').each(function(){  
//			permissionIdArray.push($(this).val());//向数组中添加元素  
//		}); 
		var treeObj = $.fn.zTree.getZTreeObj("tree");
		var nodes = treeObj.getCheckedNodes(true);
		nodes=_.filter(nodes,{"isParent":false});
		var permissionIdArray=_.map(nodes,"permissionId");
		if(permissionIdArray.length<=0){
			layAlert("请选择要移除的权限");
			return false;
		}
		ajaxUtil.ajaxRuquest('permission/removePermission',{'roleId':pageroleId,'permissionIdArray':JSON.stringify(permissionIdArray)},function(data){
			layer.msg(data,{icon:1});
			page.getRolePermission(pageroleId,2);
		});
	},
	deleteRole:function(roleId){
		ajaxUtil.ajaxRuquest('permission/deleteRole',{'roleId':roleId},function(data){
			layer.msg(data,{icon:1});
			page.queryRole();
		});
	},
	updateRole:function(){
		var name=$("#modalName").val();
		var desc=$("#modalDesc").val();
		ajaxUtil.ajaxRuquest('permission/updateRole',{'roleId':pageroleId,'name':name,'desc':desc},function(data){
			layer.msg(data,{icon:1});
			page.queryRole();
			$("#updateRoleModal").modal("hide");
		});
	}
}







